import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { PageContainer } from 'ui-patterns/PageContainer' import { PageHeader, PageHeaderAside, PageHeaderDescription, PageHeaderMeta, PageHeaderSummary, PageHeaderTitle, } from 'ui-patterns/PageHeader' import { PageSection, PageSectionContent } from 'ui-patterns/PageSection' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { RateLimits } from '@/components/interfaces/Auth/RateLimits/RateLimits' import AuthLayout from '@/components/layouts/AuthLayout/AuthLayout' import DefaultLayout from '@/components/layouts/DefaultLayout' import { DocsButton } from '@/components/ui/DocsButton' import NoPermission from '@/components/ui/NoPermission' import { UnknownInterface } from '@/components/ui/UnknownInterface' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import { DOCS_URL } from '@/lib/constants' import type { NextPageWithLayout } from '@/types' const RateLimitsPage: NextPageWithLayout = () => { const { ref } = useParams() const showRateLimits = useIsFeatureEnabled('authentication:rate_limits') const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions( PermissionAction.READ, 'custom_config_gotrue' ) if (!showRateLimits) { return } if (isPermissionsLoaded && !canReadAuthSettings) { return } return ( <> Rate Limits Safeguard against bursts of incoming traffic to prevent abuse and maximize stability {!isPermissionsLoaded ? ( ) : ( )} ) } RateLimitsPage.getLayout = (page) => ( {page} ) export default RateLimitsPage